/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.com.invest.model;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.Collection;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
import javax.persistence.OneToMany;
import javax.persistence.OneToOne;
import javax.persistence.Table;

/**
 *
 * @author ceatis
 */
@Entity
@Table(name = "GRUPOS")
public class Grupo implements Serializable {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "COD_GRUPO")
    private Integer codGrupo;
    @Column(name = "NOME", length = 30, nullable = false)
    private String nome;
    @Column(name = "SENHA", length = 24, nullable = false)
    private String senha;
    @Column(name = "LOGIN", length = 10, nullable = false)
    private String login;
    @Column(name = "SALDO")
    private Double saldo;
    @OneToMany(cascade = CascadeType.ALL)
    @JoinColumn(name = "COD_GRUPO")
    private Collection <Jogador> jogadores;
   /* @OneToMany(cascade = CascadeType.ALL)
    @JoinTable(name = "JOGADORES",
        joinColumns = {
            @JoinColumn(name = "COD_GRUPO", unique = true)
    },
        inverseJoinColumns = {
            @JoinColumn(name = "COD_JOGADOR")
    })
    private Collection<Jogador> jogadores;
    * */
    @OneToOne
    @JoinColumn(name = "COD_CARTEIRA")
    private Carteira carteira;

    public Grupo() {
        jogadores = new ArrayList<Jogador>(0);
    }

    public Integer getCodGrupo() {
        return codGrupo;
    }

    public void setCodGrupo(Integer codGrupo) {
        this.codGrupo = codGrupo;
    }

    public String getLogin() {
        return login;
    }

    public void setLogin(String login) {
        this.login = login;
    }

    public String getNome() {
        return nome;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }

    public String getSenha() {
        return senha;
    }

    public void setSenha(String senha) {
        this.senha = senha;
    }

    public Carteira getCarteira() {
        return carteira;
    }

    public void setCarteira(Carteira carteira) {
        this.carteira = carteira;
    }

    public Collection<Jogador> getJogadores() {
        return jogadores;
    }

    public void setJogadores(Collection<Jogador> jogadores) {
        this.jogadores = jogadores;
    }

    public void addJogador(Jogador j) {
        j.setGrupo(this);
        jogadores.add(j);
    }

    public void removeJogador(Jogador j) {
        jogadores.remove(j);
    }

    public Double getSaldo() {
        return saldo;
    }

    public void setSaldo(Double saldo) {
        this.saldo = saldo;
    }
}
